﻿using System;
using System.Collections.Generic;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Common.Entities
{

	/// <summary>
	/// Represents a product view.
	/// </summary>
	/// <remarks>
	/// <para>
	/// Examples of product views are &quot;Front View&quot;, &quot;Back View&quot;, &quot;Top 
	/// View&quot;, &quot;Cables Close-Up&quot;, etc.
	/// </para>
	/// </remarks>
	public class ProductImageView
	{

		#region Constructors

		/// <summary>
		/// Initializes a new instance of the <see cref="ProductImageView"/> class.
		/// </summary>
		public ProductImageView()
		{
			Localizations = new Dictionary<int, ProductImageViewLocalization>();
		}

		#endregion // Constructors

		#region Properties

		/// <summary>
		/// Gets or sets the view identifier.
		/// </summary>
		/// <value>A view identifier <see cref="Guid"/>.</value>
		public Guid ViewId { get; set; }

		/// <summary>
		/// Gets or sets the well-known view code.
		/// </summary>
		/// <value>A well-known view code <see cref="Byte"/>.</value>
		public byte WellKnownViewCode { get; set; }

		/// <summary>
		/// Gets or sets the order in which the view should be displayed.
		/// </summary>
		/// <value>An <see cref="Int32"/> ordinal position.</value>
		public int DisplayOrder { get; set; }

		/// <summary>
		/// Gets or sets the default name of the view.
		/// </summary>
		public string DefaultName { get; set; }

		/// <summary>
		/// Gets the dictionary of the view's localizations.
		/// </summary>
		/// <value>A <see cref="Dictionary{TKey,TValue}"/> of <see cref="ProductImageViewLocalization"/>
		/// keyed by culture identifier.</value>
		public Dictionary<int, ProductImageViewLocalization> Localizations { get; private set; }

		#endregion // Properties

	}

}
